package com.nineclock.attendance.service;

import com.nineclock.attendance.dto.AttendPunchDTO;
import com.nineclock.attendance.dto.AttendPunchUserWholeDayDTO;

import java.io.IOException;
import java.util.List;

public interface AttendPunchService {
    /**
     * 打卡: 移动端打卡
     * @param attendPunchDTO
     */
    void punch(AttendPunchDTO attendPunchDTO);

    /**
     * 根据id获取全天打卡信息
     * @return
     */
    AttendPunchUserWholeDayDTO queryPunchRecord();

    /**
     * 查询指定时间段内的考勤列表数据
     * @param startTime
     * @param endTime
     * @return
     */
    List<AttendPunchDTO> queryMembers(String startTime, String endTime);

    /**
     * 导出指定时间段之内的考勤数据
     * @param startTime
     * @param endTime
     */
    void exportAttendData(String startTime, String endTime) throws IOException;

    /**
     * 根据企业ID查询该企业本月考勤信息, 并生成Excel文件
     * @param companyId
     * @return
     */
    public String generateExcelReportByCompanyId(Long companyId) throws IOException;
}
